package com.my.blog.website.utils;

/**
 * redisKey设计
 *
 * @author gyh
 */
public class RedisKeyUtil {

    /**
     * redis的key
     * 形式为：
     * 表名:主键名:主键值:列名
     *
     * @param tableName     表名
     * @param majorKey      主键名
     * @param majorKeyValue 主键值
     * @param column        列名
     * @return
     */
    public static String getKeyWithColumn(String tableName, String majorKey, String majorKeyValue, String column) {
        StringBuffer buffer = new StringBuffer();
        buffer.append(tableName).append(":");
        buffer.append(majorKey).append(":");
        buffer.append(majorKeyValue).append(":");
        buffer.append(column);
        return buffer.toString();
    }

    /**
     * redis的key
     * 形式为：
     * 表名:主键名:主键值
     *
     * @param tableName     表名
     * @param majorKey      主键名
     * @param majorKeyValue 主键值
     * @return
     */
    public static String getKey(String tableName, String majorKey, String majorKeyValue) {
        StringBuffer buffer = new StringBuffer();
        buffer.append(tableName).append(":");
        buffer.append(majorKey).append(":");
        buffer.append(majorKeyValue);
        return buffer.toString();
    }

    /**
     * redis的key
     * 形式为：
     * 表名:主键名
     *
     * @param tableName 表名
     * @param majorKey  主键名
     * @return
     */
    public static String getKey2(String tableName, String majorKey) {
        StringBuffer buffer = new StringBuffer();
        buffer.append(tableName).append(":");
        buffer.append(majorKey);
        return buffer.toString();
    }

    /**
     * list key
     *
     * @param tableName
     * @param listName  如hotList
     * @return
     */
    public static String getListKey(String tableName, String listName) {
        StringBuffer buffer = new StringBuffer();
        buffer.append(tableName).append(":");
        buffer.append(listName);
        return buffer.toString();
    }

    /**
     * list key
     *
     * @param tableName
     * @param listName  如hotList
     * @return
     */
    public static String getListByPageAndNumKey(String tableName, String listName, Integer page, Integer limit) {
        StringBuffer buffer = new StringBuffer();
        buffer.append(tableName).append(":");
        buffer.append(listName).append(":");
        buffer.append(page).append(":");
        buffer.append(limit);
        return buffer.toString();
    }
}
